#ifndef AUTO_H_
#define AUTO_H_

#include <iostream>
#include <unistd.h>
#include <stdlib.h>
#include "concurrencia/MemoriaCompartida.h"
#include "concurrencia/Semaforo.h"
#include "concurrencia/Fifo.h"
#include "Utils.h"

using namespace std;

class Auto {
private:
	int id;
	int tiempoCirculando;
	int tiempoEnEstacionar;
	int cantHoras;
	int pos; //donde se va a estacionar
	Semaforo * lecturaSalida;
	Semaforo * escrituraSalida;
public:
	Auto();
	Auto(int id, Semaforo * lecturaSalida, Semaforo * escrituraSalida);
	//Auto preparado para salir, ingresa en el fifo a espera de que alguna de las salidas lo tomen.
	void salir();
	int getId();
	//Espera el tiempo para que el auto encuentre su lugar, estacione y vuelva a buscar su auto.
	void estacionar();
	int getPos();
	void setPos(int pos);
	int getTiempoEnEstacionar();
	void setTiempoEnEstacionar(int timpoEnEstacionar);
	int getCantHoras();
	void setCantHoras(int cantHoras);
	int getTiempoCirculando();
	void setTiempoCirculando(int timpoCirculando);
	virtual ~Auto();
};

#endif /* AUTO_H_ */
